// 从vue框架中导入一个createApp函数
import { createApp } from 'vue'
// 导入根组件App.vue文件 ，并起别名 App
import App from './App.vue'
//在整个App.vue文件中，如果要使用路由功能，就需要导入路由对象
import router from './routers/router.js'
// 导入element-plus组件库及其样式文件
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 导入Element Plus图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
// 导入全局状态管理对象
import { createPinia } from 'pinia'
// 导入权限指令
import { setupPermissionDirectives } from './directives/permission.js'

// 创建Pinia实例
const pinia = createPinia()

// 创建vue实例
const app = createApp(App)

// 注册Element Plus图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}

// 使用插件和配置
app.use(router)
app.use(pinia)
app.use(ElementPlus)

// 注册权限指令
setupPermissionDirectives(app)

// 挂载到id为app的元素上
app.mount('#app')
